/*******************************************************************************
 * Copyright (c) 2007 University of Oslo.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     University of Oslo - initial API and implementation
 *******************************************************************************/

package com.cea.papyrus.diagram.sequence.sedi.editor;

import org.eclipse.jface.resource.ImageDescriptor;

/**
 * Common access point for image resources.
 *  
 * @author frankd@ifi.uio.no
 */
public abstract class ImageLibrary {

	/** The icon in the heading of the SeDi toolgroup in the palette. */
	public static final String PALETTE_ICON = "sedi.palette.toolbox";
	
	/** The icon for the Interaction tool. */
	public static final String INTERACTION_TOOL = "sedi.palette.tool.interaction";
	
	/** The icon for the Comment tool. */
	public static final String COMMENT_TOOL = "sedi.palette.tool.comment";
	
	/** The icon for the Lifeline tool. */
	public static final String LIFELINE_TOOL = "sedi.palette.tool.lifeline";

	/** The icon for the Interaction Use tool. */
	public static final String INTERACTION_USE_TOOL = "sedi.palette.tool.interactionUse";

	/** The icon for the Execution Specification tool. */
	public static final String EXECUTION_SPECIFICATION_TOOL = "sedi.palette.tool.executionSpecification";

	/** The icon for the Execution Specification tool. */
	public static final String BEHAVIOR_EXECUTION_SPECIFICATION_TOOL = "sedi.palette.tool.behaviorExecutionSpecification";

	/** The icon for the Execution Specification tool. */
	public static final String ACTION_EXECUTION_SPECIFICATION_TOOL = "sedi.palette.tool.actionExecutionSpecification";

	/** The icon for the Destruction Event tool. */
	public static final String DESTRUCTION_EVENT_TOOL = "sedi.palette.tool.destructionEvent";
	
	/** The icon for the State Invariant tool. */
	public static final String STATE_INVARIANT_TOOL = "sedi.palette.tool.stateInvariant";

	/** The icon for the Action tool. */
	public static final String ACTION_TOOL = "sedi.palette.tool.action";

	/** The icon for the Combined Fragment toolbox group. */
	public static final String COMBINED_FRAGMENT_TOOLBOX = "sedi.palette.toolbox.combinedFragment";

	/** The icon for the Combined Fragment tool. */
	public static final String COMBINED_FRAGMENT_TOOL = "sedi.palette.tool.combinedFragment";

	/** The icon for the Separator tool. */
	public static final String SEPARATOR_TOOL = "sedi.palette.tool.separator";

	/** The icon for a Guard constraint in Interaction Operands. */
	public static final String INTERACTION_OPERAND_GUARD_TOOL = "sedi.palette.tool.guard";
	
	/** The icon for a Continuation. */
	public static final String CONTINUATION_TOOL = "sedi.palette.tool.continuation";
	
	/** The icon for a Messages toolbox group. */
	public static final String MESSAGES_TOOLBOX = "sedi.palette.toolbox.messages";
	
	/** The icon for a Signal. */
	public static final String SIGNAL_TOOL = "sedi.palette.tool.signal";
	
	/** The icon for a Synchronous Call. */
	public static final String SYNCH_CALL_TOOL = "sedi.palette.tool.synchCall";

	/** The icon for an Asynchronous Call. */
	public static final String ASYNCH_CALL_TOOL = "sedi.palette.tool.asynchCall";

	/** The icon for a Reply message. */
	public static final String REPLY_TOOL = "sedi.palette.tool.reply";

	/** The icon for a Create message. */
	public static final String CREATE_TOOL = "sedi.palette.tool.create";

	/** The icon for a Destroy message. */
	public static final String DESTROY_TOOL = "sedi.palette.tool.destroy";
	
	/** The icon that decorates the New Sequence Diagram wizard. */ 
	public static final String NEW_DIAGRAM_WIZARD_BANNER = "sedi.wizard.newSequenceDiagram";

	/**
	 * Returns the ImageDescriptor for the image with the specified id.
	 * 
	 * @param imageId
	 *     Identifies the image to be retrieved. This ID should typically
	 *     be one of the constants declared in this class.
	 *
	 * @return an appropriate ImageDescriptor; null if the image id is
	 *     invalid.
	 */
	public abstract ImageDescriptor getImage(String imageId);
}
